<?
require_once 'PHPUnit/Framework.php';
require_once '../../init.php';

class TestExtrairLinhasCodigoFonte extends PHPUnit_Framework_TestCase
{
	private $fixture = "TestExtrairLinhasCodigoFonte.fixture.php";

	public function test_comeco_arquivo()
	{
		$arquivo = Qi_Error::extrair_linhas_do_codigo_fonte($this->fixture, 4, 10, 4);
		$esperado = array("<?
", "require_once 'PHPUnit/Framework.php';
", "require_once '../../init.php';
", "
", "class TestExtrairLinhasCodigoFonte extends PHPUnit_Framework_TestCase
", "{
", "	public function test_comeco_arquivo()
", "	{
");
		$esperado = array_combine(range(1, 8), $esperado);
		$this->assertEquals($arquivo, $esperado);
	}

	public function test_meio_arquivo()
	{
		$esperado = "/**
|-5
|-4
|-3
|-2
|-1
|0
|+1
|+2
|+3
|**/
";
		$esperado = explode("|", $esperado);
		$esperado = array_combine(range(24, 34), $esperado);
		$arquivo = Qi_Error::extrair_linhas_do_codigo_fonte($this->fixture, 30, 6, 4);
		$this->assertEquals($arquivo, $esperado);
	}

	public function test_fim_arquivo()
	{
		$esperado = "//FIM
|
|?>";
		$esperado = explode("|", $esperado);
		$esperado = array_combine(range(38, 40), $esperado);
		$arquivo = Qi_Error::extrair_linhas_do_codigo_fonte($this->fixture, 39, 1, 5);
		$this->assertEquals($arquivo, $esperado);
	}
}
?>